// 定义一个名为RoomTypeController的控制器类，用于处理与房间类型相关的HTTP请求
package com.example.hms.controller;

// 导入相关的类和包

import com.example.hms.entity.RoomType; // 房间类型实体类
import com.example.hms.service.RoomTypeService; // 房间类型服务类
import com.example.hms.util.Result; // 用于封装返回结果的工具类
import org.springframework.web.bind.annotation.RequestMapping; // Spring MVC的请求映射注解
import org.springframework.web.bind.annotation.RequestMethod; // HTTP方法注解
import org.springframework.web.bind.annotation.RestController; // 标识这是一个RESTful风格的控制器

import javax.annotation.Resource; // 依赖注入注解
import javax.servlet.http.HttpServletRequest;
import java.math.BigDecimal; // 处理高精度浮点数的类

// 使用@RestController注解，表明该类是一个控制器，并且所有的响应默认都是JSON格式
@RestController
// 使用@RequestMapping注解，设置基础路径为"/roomType"
@RequestMapping("/roomType")
public class RoomTypeController {
    // 使用@Resource注解，自动注入RoomTypeService服务类
    @Resource
    private RoomTypeService roomTypeService;

    // 处理GET请求，路径为"/selectAllRoomType"，用于查询所有房间类型
    @RequestMapping(value = "/selectAllRoomType", method = RequestMethod.GET)
    public Result selectAllRoomType( String roomTypeName,BigDecimal roomPrice) {
        // 调用roomTypeService的selectAllRoomType方法，并传入价格和类型名称参数
        return roomTypeService.selectAllRoomType( roomTypeName,roomPrice);
    }

    // 处理GET请求，路径为"/insert"，用于插入新的房间类型
    @RequestMapping(value = "/insert", method = RequestMethod.GET)
    public Result insert(RoomType roomType, HttpServletRequest request) {
        // 调用roomTypeService的insert方法，并传入房间类型对象
        return roomTypeService.insert(roomType,request);
    }

    // 处理GET请求，路径为"/update"，用于更新房间类型信息
    @RequestMapping(value = "/update", method = RequestMethod.GET)
    public Result update(RoomType roomType, HttpServletRequest request) {
        // 调用roomTypeService的update方法，并传入房间类型对象
        return roomTypeService.update(roomType,request);
    }

    // 处理GET请求，路径为"/delete"，用于删除指定ID的房间类型
    @RequestMapping(value = "/delete", method = RequestMethod.GET)
    public Result delete(String roomTypeId, HttpServletRequest request) {
        // 调用roomTypeService的delete方法，并传入房间类型ID
        return roomTypeService.delete(roomTypeId,request);
    }
}
